// 用户认证相关工具函数
import store from '@/store'

const TOKEN_KEY = 'erp_token'
const USER_INFO_KEY = 'erp_user_info'

/**
 * 存储token
 */
export function setToken(token) {
	uni.setStorageSync(TOKEN_KEY, token)
	// 同步更新Vuex store
	if (store) {
		store.commit('user/setToken', token)
	}
}

/**
 * 获取token
 */
export function getToken() {
	return uni.getStorageSync(TOKEN_KEY)
}

/**
 * 移除token
 */
export function removeToken() {
	uni.removeStorageSync(TOKEN_KEY)
	// 同步清除Vuex store
	if (store) {
		store.commit('user/clearToken')
	}
}

/**
 * 存储用户信息
 */
export function setUserInfo(userInfo) {
	uni.setStorageSync(USER_INFO_KEY, JSON.stringify(userInfo))
	// 同步更新Vuex store
	if (store) {
		store.commit('user/setUserInfo', userInfo)
	}
}

/**
 * 获取用户信息
 */
export function getUserInfo() {
	const userInfo = uni.getStorageSync(USER_INFO_KEY)
	return userInfo ? JSON.parse(userInfo) : null
}

/**
 * 移除用户信息
 */
export function removeUserInfo() {
	uni.removeStorageSync(USER_INFO_KEY)
	// 同步清除Vuex store
	if (store) {
		store.commit('user/clearUserInfo')
	}
}

/**
 * 清除所有认证信息
 */
export function clearAuth() {
	removeToken()
	removeUserInfo()
}

/**
 * 检查是否已登录
 */
export function isLoggedIn() {
	return !!getToken()
}

/**
 * 从本地存储初始化Vuex store
 */
export function initAuthFromStorage() {
	const token = getToken()
	const userInfo = getUserInfo()
	
	if (store) {
		if (token) {
			store.commit('user/setToken', token)
		}
		if (userInfo) {
			store.commit('user/setUserInfo', userInfo)
		}
	}
}

